perm filename R[MUS,LCS] blob sn#312563 filedate 1977-10-24 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	EXTERNAL FUNCTION GETINF(ARRAY J,INSR,INBT,INCH,INMX,INDR),
C00009 ENDMK
C⊗;
EXTERNAL FUNCTION GETINF(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMPL(ARRAY N,BITS),GETIN2(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP2(ARRAY N,BITS),GETIN3(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP3(ARRAY N,BITS),GETIN4(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP4(ARRAY N,BITS);
 
ARRAY INF, IN2, IN3, IN4(1536);
VARIABLE /CNT,/RD,/SCNT,INCH,INSR,INMX,INDR,INBT,INBUF,
/CNT2,/RD2,/SCNT2,INCH2,INSR2,INDR2,INBT2,INBUF2,
/CNT3,/RD3,/SCNT3,INCH3,INSR3,INDR3,INBT3,INBUF3,
/CNT4,/RD4,/SCNT4,INCH4,INSR4,INDR4,INBT4,INBUF4;
 
FUNCTION PRNTIT(CNT,INSR,INBT,INCH,INDR,INBUF);  
BEGIN  VARIABLE DUR;
  INBUF←1535-512*INBT;  DUR←INDR/INSR/INCH;
  PRINT " SRATE=",INSR," BITS=",12+INBT*6," NCHNS=",INCH,
  " MAXAMP=",INMX," DUR=",DUR;
  CNT←INBUF+1;
END;

FUNCTION PRNTNM(NM);
BEGIN PRINT "****READING ",NM,".SND****"; END;

FUNCTION READIN(RD);
BEGIN 		<DON'T FORGET TO INIT AND SCNT ← 0;
  IF SCNT=0 THEN BEGIN  
    PRINT "****READING ",INFILE,".SND****";
    GETINF(INF,INSR,INBT,INCH,INMX,INDR);<HEADER IS READ INTO ARRAY INF.
    PRNTIT(CNT,INSR,INBT,INCH,INDR,INBUF);
  END;
  SCNT←SCNT+1; 
  IF SCNT > INDR THEN  BEGIN <CHECK TO SEE IF SMPL CNT IS EXCEEDED
     RD←0;  RETURN(RD); END;
  IF CNT > INBUF THEN BEGIN
     RDSMPL(INF,INBT);
     CNT←0;  END;
  RD←INF(CNT);
  CNT←CNT+1; <UPDATE THE COUNTER
  RETURN(RD); END; 

FUNCTION READI2(RD2);
BEGIN 		<DON'T FORGET TO INIT AND SCNT ← 0;
  IF SCNT2=0 THEN BEGIN  
    PRINT "****READING ",INFIL2,".SND****";
    GETIN2(IN2,INSR2,INBT2,INCH2,INMX,INDR2);<HEADER IS READ INTO ARRAY INF.
    PRNTIT(CNT2,INSR2,INBT2,INCH2,INDR2,INBUF2);
    END;
  SCNT2←SCNT2+1;
  IF SCNT2 > INDR2 THEN  BEGIN <CHECK TO SEE IF SMPL CNT IS EXCEEDED
    RD2←0;  RETURN(RD2); END;
  IF CNT2 > INBUF2 THEN BEGIN
    RDSMP2(IN2,INBT2);
    CNT2←0;  END;
  RD2←IN2(CNT2); 
  CNT2←CNT2+1; <UPDATE THE COUNTER
  RETURN(RD2); END; 

FUNCTION READI3(RD3);
BEGIN 		<DON'T FORGET TO INIT AND SCNT ← 0;
  IF SCNT3=0 THEN BEGIN  
    PRINT "****READING ",INFIL3,".SND****";
    GETIN3(IN3,INSR3,INBT3,INCH3,INMX,INDR3);<HEADER IS READ INTO ARRAY INF.
    PRNTIT(CNT3,INSR3,INBT3,INCH3,INDR3,INBUF3);
  END;
  SCNT3←SCNT3+1;
  IF SCNT3 > INDR3 THEN  BEGIN <CHECK TO SEE IF SMPL CNT3 IS EXCEEDED
    RD3←0;  RETURN(RD3); END;
  IF CNT3 > INBUF3 THEN BEGIN
    RDSMP3(IN3,INBT3);
    CNT3←0;  END;
  RD3←IN3(CNT3);
  CNT3←CNT3+1; <UPDATE THE COUNTER
  RETURN(RD3); END; 

FUNCTION READI4(RD4);
BEGIN 		<DON'T FORGET TO INIT AND SCNT4 ← 0;
  IF SCNT4=0 THEN BEGIN  
    PRINT "****READING ",INFIL4,".SND****";
    GETIN4(IN4,INSR4,INBT4,INCH4,INMX,INDR4);<HEADER IS READ INTO ARRAY INF.
    PRNTIT(CNT4,INSR4,INBT4,INCH4,INDR4,INBUF4);
  END;
  SCNT4←SCNT4+1;
  IF SCNT4 > INDR4 THEN  BEGIN <CHECK TO SEE IF SMPL CNT4 IS EXCEEDED
    RD4←0;  RETURN(RD4); END;
  IF CNT4 > INBUF4 THEN BEGIN
    RDSMP4(IN4,INBT4);
    CNT4←0;  END;
  RD4←IN4(CNT4);
  CNT4←CNT4+1; <UPDATE THE COUNTER
  RETURN(RD4); END; 

<********************************************************************
SETMAG;1 12
SEG(F6);1 1  1 100;  < ALWAYS 1
SEG(F5);.01 1 1 100;  < SLOPE UP
<SEG(F6);0 0 .7 20  0 50 1 80 0 100; <PUTS ENVELOPE ON INPUT SOUND.
INSTRUMENT READA;
COSCIL(P4,MAG/P6,P5);
OUTA←OUTA+U1*READIN(RD);
END;
INSTRUMENT READB;
COSCIL(P4,MAG/P6,P5);
OUTA←OUTA+U1*READI2(RD2);
END;
INSTRUMENT READC;
COSCIL(P4,MAG/P6,P5);
OUTA←OUTA+U1*READI3(RD3);
END;
INSTRUMENT READD;
COSCIL(P4,MAG/P6,P5);
OUTA←OUTA+U1*READI4(RD4);
END;

OUTFILE←"R.SND";
 SCNT4←0;
 SCNT3←0;
SCNT←0; 
SCNT2←0;
PLAY; READA 0  .4     0 2 F6 .4;
INFILE←"TOOT";      <FILE NAME TO BE READ IN FOR NOTE ABOVE THIS LINE!!!
 INFIL4←"TOOT";      <FILE NAME TO BE READ IN.
  <SCNT MUST BE SET TO ZERO BEFORE NOTE TO START READIN CORRECTLY!!
READB  0  .5   0 1 F6 .5;
INFIL2←"CLAR";      <FILE NAME TO BE READ IN.
 READC  1 .5   0  2 F5 .5;
 INFIL3←"CLAR";      <FILE NAME TO BE READ IN.
 READD  2.4 .4   0  4 F5 2.8;
 INFIL4←"TOOT";      <FILE NAME TO BE READ IN.
 SCNT4←0;
 READD  2.8 .4   ; 
 SCNT4←0;
 READD  3.2 .4   ; 
 SCNT4←0;
 READD  3.6 .4   ; 
 SCNT4←0;
 READD  4 .4   ; 
 SCNT4←0;
 READD  4.4 .4   ; 
 SCNT4←0;
 READD  4.8 .4   ; 
 SCNT4←0;
FINI;